package persistencia.compartido;

public class Tipo<T> implements Comparable<Tipo<T>>{
	protected Class<? extends T> clase;
	
	public Tipo(Class<? extends T> clase) {
		this.clase = clase;
	}
	
	public String getNombre() {
		return clase.getCanonicalName();
	}

	public boolean esSuperTipoDe(Tipo<? extends T> otroTipo) {
		return this.clase.isAssignableFrom(otroTipo.clase);
	}
	
	public Class<? extends T> getClase() {
		return clase;
	}

	@Override
	public int compareTo(Tipo<T> otroTipo) {
		return (getNombre().compareTo(otroTipo.getNombre()));
	}	
}
